package main

import "fmt"

type Animal struct {
	name string
}

func (a *Animal) move() {
	fmt.Println(a.name + "会动！")
}

// 结构体中字段大写开头表示可公开访问，小写表示私有（仅在定义当前结构体的包中可访问）。
type Dog struct {
	feet    int
	*Animal // 通过嵌套匿名结构体实现继承
}

func (d *Dog) wang() {
	fmt.Println(d.name + " 哇哇叫")
}

func main() {
	d1 := Dog{feet: 9, Animal: &Animal{name: "乐乐"}} // 注意嵌套的结构体指针
	d1.wang()
	d1.move()
}
